#pragma once

#include <QVector3D>
#include <QObject>
#include <QByteArray>
#include "rviz_custom_plugins/models/pose.h"
#include <nlohmann/json.hpp>


using nlohmann::json;


namespace rviz_custom_plugins 
{


namespace models 
{


class Poses
{

public:

    Poses() = default;

    Poses(const Poses& other) : poses(other.poses) {}

    ~Poses() = default;

    std::vector<Pose> poses;

};


inline void to_json(json& j, const Poses& poses)
{
    j = json{
        {"poses", poses.poses}
    };
}


inline void from_json(const json&j, Poses& poses)
{
    poses.poses = j.at("poses");
}

}


}


Q_DECLARE_METATYPE(rviz_custom_plugins::models::Poses)